import axios from "axios";
import {getToken, removeToken} from "@/utils/token";
import router from "@/router/index.jsx";
import {message} from "antd";

const http = axios.create({
    baseURL: "http://localhost",
    timeout: 5000,
});

http.interceptors.request.use(
    (config) => {
        // 操作config注入token数据
        // 1.获取到token
        // 2.按照前后端的格式要求做token拼接
        const token=getToken();
        if (token){
            // 注意，必须是`${token}`，而不能是token
            config.headers.token = `${token}`
        }
        return config;
    },
    (error) => {
        return Promise.reject(error);
    }
);

http.interceptors.response.use(

    (response) => {
        /*
        这里要说明一下，在后端是saToken时候，没有token错误，就会返回200错误代码
        * */

        // if (response.data.code===200){
        //     // console.log(response.data.code+"=====>data.code");
        //     // errResponse();
        // }
        return response.data;
    },
    (error) => {
        // 这里要说明一下，在后端是saToken时候，如果token错误，就会返回500错误代码
        if (error.status===500) {
            message.error("登录过期、用户名或者密码错误！");
            setTimeout(()=>{
                    errResponse()},
                1000
            )
        }

        return Promise.reject(error);
    }
);

export {http}

const errResponse=()=>{
    removeToken();
    router.navigate('/login').then(()=>{window.location.reload();})

}